package com.qf.service;

import java.util.Map;

/**
 * @author 何星宇
 * @version V1.0
 * @Date 2021/11/19 10:55
 */
public interface CacheService {

    /**
     * 存储key-object，并设置生存时间
     * @param key
     * @param value
     * @param expireSecond
     * @return
     */
    boolean set(String key, Object value, Long expireSecond);

    /**
     * 存储key-object，不设置生存时间
     * @param key
     * @param value
     * @return
     */
    boolean set(String key, Object value);

    /**
     * 通过key获取string的value
     * @param key
     * @return
     */
    Object get(String key);

    /**
     * 根据多个key删除数据
     * @param keys
     * @return
     */
    boolean del(String[] keys);

    /**
     * 存储key-hash，不设置生存时间
     * @param key
     * @param map
     * @return
     */
    boolean hMSet(String key, Map map);

    /**
     * 通过key获取map的value
     * @param key
     * @return
     */
    Map hMGet(String key);

    /**
     * 自增数据
     * @param key
     * @param delta 每次自增多少
     * @return
     */
    Long incr(String key, long delta);

    /**
     * 存储key-set，不设置生存时间
     * @param key
     * @param value
     * @return
     */
    boolean sadd(String key, String[] value);

    Object hGet(String key , String filed);

    boolean expire(String key, Long expireSecond);
}
